package com.woniu.zsd.recycle.service;

import com.github.pagehelper.PageInfo;
import com.woniu.zsd.common.util.Result;
import com.woniu.zsd.recycle.dto.*;
import com.woniu.zsd.recycle.form.ConfirmVisitForm;
import com.woniu.zsd.recycle.model.RecyclingOrder;
import com.baomidou.mybatisplus.extension.service.IService;
import com.woniu.zsd.recycle.param.*;

import java.time.LocalDateTime;
import java.util.List;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author 彭于晏
 * @since 2025年02月18日
 */
public interface RecyclingOrderService extends IService<RecyclingOrder> {
    public void addRecyclingOrder(AddRecyclingOrderParam param)throws Exception;
    public void receivingOrders(ReceivingOrdersParam param)throws Exception;
    public void confirmVisit(ConfirmVisitParam param)throws Exception;
    public void cancelRecyclingOrder(String recyclingOrderNum)throws Exception;
    public void confirmOrder(ConfirmOrderParam param)throws Exception;
    public List<SelectOrderByIdDto> selectOrderById(Integer stationId)throws Exception;
    public List<RecycleDtatistics> select(LocalDateTime startOfDay, LocalDateTime endOfDay)throws Exception;
    public List<RecyclingOrder> selectAllOrderByUserId(Integer userId)throws Exception;
    public List<SelectCancelOrderByUserIdDro> selectCancelOrderByUserIdAndStatus(Integer userId, Integer status)throws Exception;

    public PageInfo<SelectOrderByConditionDto> selectOrderByCondition(ConditionParam param)throws Exception;

    PageInfo<SelectOrderByConditionDto> stationSelectOrderByCondition(StationConditionParam param)throws Exception;


    List<OrderDtoByStation> selectAllOrderByStation() throws Exception;

    List<selectAllOrderByType> selectAllOrderByType() throws Exception;
}
